///////////////////////////////////////////////////////////////////////////////////////////////////
/// \file formic/ham/freeze_core.h
///
/// \brief   header file for freezing the core
///
///////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef FORMIC_HAM_FREEZE_CORE_HEADER
#define FORMIC_HAM_FREEZE_CORE_HEADER

#include<vector>
#include<string>

namespace formic {

  class Archive;
  class AllData;
  class InputBase;
  template<class S> class Hamiltonian;

  template<class S>
  void freeze_core_to_text_file(const formic::InputBase & userinp,
                                formic::Hamiltonian<S> & ham,
                                const std::string & out_name,
                                const std::vector<int> & frz_inds);

  void Make_FC_Text_Ham_command_function(formic::Archive & arch, formic::AllData & data);

}

#endif
